package LeetCode.leetcode20;

import java.util.Stack;

public class Main {

    public boolean isValid(String s) {
//        /**
//         * 0-（  ; 1-） ; 2-[ ; 3-] ; 4-{  ;5-}
//         */
//        int[] arr = new int[6];
        Stack<Character> stack = new Stack<>();
        char c;
        for (int i = 0; i < s.length(); i++) {
            c = s.charAt(i);
            if (c == '(' || c == '[' || c == '{') {
                stack.push(c);
            } else {
                if (stack.isEmpty()) {
                    return false;
                }
                switch (c) {
                    case ')':
                        if (stack.pop() != '(') {
                            return false;
                        }
                        break;
                    case ']':
                        if (stack.pop() != '[') {
                            return false;
                        }
                        break;
                    default:
                        if (stack.pop() != '{') {
                            return false;
                        }
                        break;
                }
            }
        }
        if(stack.isEmpty()){
            return true;
        }
        return false;
    }
}
